package com.example.friend.service;

import com.example.friend.entity.DTO.UserUpdateDTO;
import com.example.friend.entity.VO.LoginUserVO;
import com.example.friend.entity.VO.UserDetailVO;

public interface IUserService {
    /**
     * 发送验证码
     *
     * @param phoneNum 电话号码
     * @return
     */
    boolean sendCode(String phoneNum);

    /**
     * 用户登录
     *
     * @param phone 手机号
     * @param code  验证码
     * @return jwt令牌
     */
    String login(String phone, String code);

    /**
     * 退出登录
     *
     * @param token jwt token
     * @return
     */
    boolean logout(String token);

    /**
     * 获取用户基本信息
     * @param token token
     * @return LoginUserVO
     */
    LoginUserVO getLoginUserInfo(String token);

    /**
     * 获取用户详情
     * @return UserDetailVO
     */
    UserDetailVO detail();


    /**
     * 修改用户信息
     * @param userUpdateDTO userUpdateDTO
     * @return 1.成功 0.失败
     */
    int edit(UserUpdateDTO userUpdateDTO);

    /**
     * 更新用户头像信息
     * @param headImage headImage
     * @return
     */
    int updateHeadImage(String headImage);
}
